package com.zp.business.service.clinicOrder;


import com.zp.business.entity.clinicOrder.ClinicOrdersCost;
import com.zp.business.entity.clinicOrder.bo.ApplyItemBo;
import com.zp.business.entity.clinicOrder.bo.ClinicOrdersBo;
import com.zp.business.entity.clinicOrder.bo.ClinicOrdersCostBo;
import com.zp.business.entity.clinicOrder.vo.ClinicOrdersCostVo;
import com.zp.common.myBatis.core.page.PageQuery;
import com.zp.common.myBatis.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 门诊项目明细Service接口
 *
 * @author zhang peng
 * @ date 2024-01-05
 */
public interface IClinicOrdersCostService {

    /**
     * 查询门诊项目明细
     */
    ClinicOrdersCostVo queryById (String id);

    /**
     * 查询门诊项目明细列表(分页)
     */
    TableDataInfo<ClinicOrdersCostVo> queryPageList (ClinicOrdersCostBo bo, PageQuery pageQuery);

    /**
     * 查询门诊项目明细列表(不分页)
     */
    List<ClinicOrdersCostVo> queryList (ClinicOrdersCostBo bo);

    /**
     * 修改门诊项目明细
     */
    Boolean insertByBo (ClinicOrdersCostBo bo);

    /**
     * 修改门诊项目明细
     */
    Boolean updateByBo (ClinicOrdersCostBo bo);

    /**
     * 校验并批量删除门诊项目明细信息
     */
    Boolean deleteWithValidByIds (Collection<String> ids, Boolean isValid);

    /**
     * 保存处置治疗信息
     *
     * @param bo
     * @param applyItemBoList
     * @return
     */
    Map<String, Object> saveByBo (ClinicOrdersBo bo, List<ApplyItemBo> applyItemBoList, int num);

    Boolean deleteInOrderId (String clinicOrdersId);

    Boolean saveBatch (List<ClinicOrdersCost> list);

    /**
     * 修改收费状态
     *
     * @param chargeType    收费状态
     * @param clinicOrderIdOrCostId 门诊医嘱id或者costId
     * @return
     */
    Boolean updateChargeType (String chargeType, String clinicOrderIdOrCostId, String type);

}
